iT邦幫忙

2023 iThome 鐵人賽

DAY 12
1

@Controller

@Controller 是 Spring Framework 中的一個注解,用於標記 Java 類,表示它是 Spring MVC 應用程式裡的控制器。控制器的主要工作是處理 HTTP 請求,執行對應的業務邏輯,然後返回視圖或其他形式的response給客戶端。

讓我們來是實際操作一次:

package com.example.spring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloController {

    @RequestMapping("/hello") // 處理請求的映射
    public ModelAndView helloWorld() {

        // 建立一個 ModelAndView 物件,並指定視圖名稱
        ModelAndView modelAndView = new ModelAndView("helloView");

        // 向模型添加數據,可以在視圖中使用
        modelAndView.addObject("message", "Hello, Spring MVC!");

        return modelAndView; // 回傳 ModelAndView 物件
    }
}

在上面的例子中:

  • @Controller 注解標記 HelloController 類為 Spring MVC 的控制器。
  • @RequestMapping("/hello") 注解指定了處理 /hello 請求的方法 helloWorld()
  • ModelAndView 類被用來建立一個 ModelAndView 物件,並指定視圖名稱(在這個例子中是 "helloView")。
  • 使用 addObject() 方法將數據添加到模型,這樣可以在視圖中呼叫它。
  • 最後,return modelAndView; 透過回傳 ModelAndView 物件,告訴 Spring MVC 使用 helloView 視圖並將模型數據渲染到該視圖。

這一個簡單的範例,示範了如何使用 @Controller 來創建一個基本的控制器,處理請求並返回 ModelAndView 物件。當使用者訪問 /hello URL 時,可以由 message 物件來取得 "Hello, Spring MVC!" 的字串。

另外有 @Restcontroller@GetMapping@PostMapping 等等的用法,日後會來說明與@Controller@RequestMapping 有什麼樣的區別。

參考資料

https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-controller.html
https://www.baeldung.com/spring-controllers


上一篇
Day 11 : 咒語!!!SpringBootApplication!!!啟動專案!!
下一篇
Day 13 : RestController 與 Controller
系列文
Spring、Spirng MVC 及 Spring Boot 自主學習旅途!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言